Introduction: First Principles Thinking

Let's cover what first principles thinking is and how it helps you to dispel myths.

What is first principle thinking?#

First Principles Thinking (FPT) starts from unequivocal base facts and builds up toward some vision or explanation of reality. It involves reasoning by deduction rather than by analogy or appeal to authority. It’s been called the "dumbest thing smart people do.

Big O Notation and FPT#

Big O Notation is many developers’ first brush with FPT. As a developer, learning to reason from first principles makes you see the bigger picture behind all the engineering work you do, from project estimation to technology evaluation. As you get comfortable with your tools, you should start to look beyond them toward their underlying patterns and limitations. This is one of the key transitions you will make in the transition from junior to senior.

Think beyond labels#

Push yourself to think beyond labels. Questions like “is it production ready?” or “does it scale?” or “is it blazing fast?” have very little meaning absent your own context. For a hilarious take on this, check out this parody video discussing the technical merits of Node.js between two developers. It’s funny because it is true. So many beginner developers, and too many senior developers, think and talk with labels and never go past that. Learn to break down how things work and derive your own answers based on first principles.

Break down the problem#

When you are told that something cannot be done, first principles will help you ask, “Why Not?” Conversely, if you are being tasked with something impossible, first principles will help you quickly demonstrate nonviability by breaking down the problem into a set of base facts.

Break down the problem into a set of base facts
  • Jeff Dean was known to circulate a shortlist of Latency Numbers Every Programmer Should Know at Google, reminding developers of the total futility of trying to do transatlantic round trips faster than 150ms because it is limited by the speed of light.
  • Working on gesture interfaces, John Carmack points out that the speed of thought is the only 110m/s, placing 9ms of latency in your arm. This is hugely sobering for his field of human-computer interfaces.
  • You can keep your own list of base facts for performing Napkin Math in your domain.

Dispel myths#

Having a good grounding in inviolable truths helps you dispel myths. If you break apart a bundle, whether it is a system, product, library, or belief, and its constraints aren’t demanded by the sum of its parts and Amdahl’s law, there is probably an opportunity.

MYTH
[Not supported by viewer]
FACT
[Not supported by viewer]
Dispel myths

Ironically, plenty of explainers (1, 2, 3) on FPT immediately appeal to authority like Charlie Munger, or Elon Musk. Elon probably has done the most to popularize it in recent memory, but if you must be sold based on authority, then you haven’t really got the point of FPT.

To embrace FPT, you need to understand the philosophy of logic and epistemology.

Quiz Yourself on Good Enough is Better than Best

Logic